package com.chaochis.service.impl;

import com.chaochis.dto.CommentDto;
import com.chaochis.entity.CommentEntity;
import com.chaochis.mapper.CommentMapper;
import com.chaochis.service.ICommentService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * @author 刘超
 * @version 1.0
 * TODO
 * Created in 2024/11/24 20:46
 */
@Slf4j
@Service
public class CommentService implements ICommentService {

    @Autowired
    private CommentMapper commentMapper;

    /**
     * 添加评论
     *
     * @param commentDto 评论数据传输对象，包含评论的所有信息
     */
    @Override
    public int addComment(CommentDto commentDto) {
        var addComment = new CommentEntity();
        BeanUtils.copyProperties(commentDto, addComment);
        return this.commentMapper.insert(addComment);
    }

    /**
     * 删除评论
     * <p>
     * 根据提供的评论数据传输对象（CommentDto）中的评论ID来删除对应的评论。
     *
     * @param commentDto 评论数据传输对象，其中必须包含有效的评论ID。
     */
    @Override
    public int deleteComment(CommentDto commentDto) {
        return this.commentMapper.deleteById(commentDto.getCommentId());
    }

    /**
     * 更新评论
     * <p>
     * 根据提供的评论数据传输对象（CommentDto）中的评论ID来更新对应的评论。
     *
     * @param commentDto 评论数据传输对象，其中必须包含有效的评论ID和需要更新的信息。
     */
    @Override
    public int updateComment(CommentDto commentDto) {
        var updateComment = new CommentEntity();
        BeanUtils.copyProperties(commentDto, updateComment);
        return this.commentMapper.updateById(updateComment);
    }

    /**
     * 查询评论
     * <p>
     * 根据提供的评论数据传输对象（CommentDto）中的评论ID来查询对应的评论。
     *
     * @param commentDto 评论数据传输对象，其中必须包含有效的评论ID。
     */
    @Override
    public void queryComment(CommentDto commentDto) {

    }
}
